/**
 * OA项目统一Store配置入口
 * 统一管理项目所需的MobX Store
 */

// 安全的导入模块函数 - 使用静态路径映射替代动态require
function safeRequire(path) {
  try {
    // 使用静态路径映射替代动态require
    switch(path) {
      case '../../../store/modules/user/index.js':
        return require('../../../store/modules/user/index.js');
      case '../../../store/modules/message/index.js':
        return require('../../../store/modules/message/index.js');
      case '../../../store/global/ui.js':
        return require('../../../store/global/ui.js');
      case '../../../store/global/fav_foot.js':
        return require('../../../store/global/fav_foot.js');
      case '../../../store/modules/task/index':
        return require('../../../store/modules/task/index');
      case '../../../store/modules/oa/modules/news/news_store.js':
        return require('../../../store/modules/oa/modules/news/news_store.js');
      case '../store/knowledge_store':
        return require('../store/knowledge_store');
      case '../store/company_store':
        return require('../store/company_store');
      case '../store/index_store':
        return require('../store/index_store');
      case '../store/contact_store':
        return require('../store/contact_store');
      case '../store/feedback_store':
        return require('../store/feedback_store');
      case '../store/sample_store':
        return require('../store/sample_store');
      case '../store/admin_store':
        return require('../store/admin_store');
      case '../store/content_store':
        return require('../store/content_store');
      case '../store/user_admin_store':
        return require('../store/user_admin_store');
      case '../store/modules/list/index':
        return require('../store/modules/list/index');
      case '../store/modules/form/index':
        return require('../store/modules/form/index');
      case '../store/modules/table/index':
        return require('../store/modules/table/index');
      case '../../../store/modules/material/materialListStore':
        return require('../../../store/modules/material/materialListStore');
      case '../../../store/modules/material/materialStore':
        return require('../../../store/modules/material/materialStore');
      default:
        console.warn('[OA Store配置] 未匹配的路径:', path);
        return null;
    }
  } catch (e) {
    console.warn('[OA Store配置] 导入模块失败:', path, e.message);
    return null;
  }
}

// 导入全局Store
const userStore = safeRequire('../../../store/modules/user/index.js')?.userStore;
const messageStore = safeRequire('../../../store/modules/message/index.js')?.messageStore;
const uiStore = safeRequire('../../../store/global/ui.js')?.uiStore;
const { favStore, footStore } = safeRequire('../../../store/global/fav_foot.js') || { favStore: null, footStore: null };

// 导入业务模块Store
const taskStore = safeRequire('../../../store/modules/task/index')?.taskStore;
const newsStore = safeRequire('../../../store/modules/oa/modules/news/news_store.js')?.newsStore;

// 导入项目特定Store
const knowledgeStore = safeRequire('../store/knowledge_store')?.knowledgeStore;
const companyStore = safeRequire('../store/company_store')?.companyStore;
const indexStore = safeRequire('../store/index_store')?.indexStore;
const contactStore = safeRequire('../store/contact_store')?.contactStore;
const feedbackStore = safeRequire('../store/feedback_store')?.feedbackStore;
const sampleStore = safeRequire('../store/sample_store')?.sampleStore;
const adminStore = safeRequire('../store/admin_store')?.adminStore;
const contentStore = safeRequire('../store/content_store')?.contentStore;
const userAdminStore = safeRequire('../store/user_admin_store')?.userAdminStore;

// 导入模块Store
const listStore = safeRequire('../store/modules/list/index')?.listStore;
const formStore = safeRequire('../store/modules/form/index')?.formStore;
const tableStore = safeRequire('../store/modules/table/index')?.tableStore;

// material模块
const materialListStore = safeRequire('../../../store/modules/material/materialListStore')?.materialListStore;
const materialStore = safeRequire('../../../store/modules/material/materialStore')?.materialStore;

// 初始化方法
function initAllOaStores() {
  // 这里可以添加OA项目特定的初始化逻辑
  return true;
}

// 导出所有Store
module.exports = {
  // 初始化方法
  initAllOaStores,
  
  // 全局Store
  userStore,
  messageStore,
  uiStore,
  favStore, 
  footStore,
  
  // 业务Store
  taskStore,
  knowledgeStore,
  companyStore,
  indexStore,
  contactStore,
  feedbackStore,
  sampleStore,
  adminStore,
  contentStore,
  userAdminStore,
  newsStore,
  
  // 模块Store
  listStore,
  formStore,
  tableStore,
  
  // Material模块
  materialListStore,
  materialStore
}; 